/**
 * 该处实现供开发者参考
 */
const codeMsg = {
  dataErrorMsg: {
    // 601: '您没有登录',
    // 1001: '帐号被锁定，请联系管理员',
    // 1002: '用户名不存在或未生效，请重新输入',
    // 1005: '帐号过期，请联系管理员',
    // 1008: '帐号未生效',
    // 1007: '身份验证失败',
    default: '数据处理错误'
  },
  responseErrorMsg: {
    default: '接口错误'
  },
  requestErrorMsg: {
    default: '网络异常, 请检查网络'
  },
  /**
   * 根据code码得到对应的错误信息
   * @param {Number} code 接口响应数据中的code属性
   * @returns {String} 消息字符串或消息字符串组成的数组
   */
  resolveDataError (code, defaultMsg = '') {
    if (defaultMsg === '') {
      defaultMsg = codeMsg.dataErrorMsg.default
    }
    return `${codeMsg.dataErrorMsg[code] || defaultMsg}[${code}]`
  },
  /**
   * 处理消息以便得到可供显示的内容
   * @param {String, Object} msg error接收到的参数，一般为响应回调中计算出的消息字符串，或者xhr对象, 也有可能是then中由于数据处理错误抛出的异常
   * @param {String} defaultMsg 默认错误信息
   * @returns {String} 错误信息字符串 或 错误信息数组
   */
  resolveResponseError (response, defaultMsg = '') {
    if (defaultMsg === '') {
      defaultMsg = this.responseErrorMsg.default
    }
    return `${this.responseErrorMsg[response.status] || defaultMsg}[${response.status}]`
  },
  resolveRequestError () {
    return this.requestErrorMsg.default
  }
}

export default codeMsg
